local CGStringConcat = CGStringConcat or {}
CGStringConcat.__index = CGStringConcat

function CGStringConcat.new()
    local self = setmetatable({}, CGStringConcat)
    self.inputs = {}
    return self
end

function CGStringConcat:setInput(index, func)
    self.inputs[index] = func
end

function CGStringConcat:getOutput(index)
    local v1 = self.inputs[0]() or ""
    local v2 = self.inputs[1]() or ""
    local v3 = self.inputs[2]() or ""
    local v4 = self.inputs[3]() or ""
    return v1 .. v2 .. v3 .. v4
end

return CGStringConcat
